/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import entity.Usuarios;
import java.sql.SQLIntegrityConstraintViolationException;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author FRANCO
 */
@Stateless
public class UsuariosFacade extends AbstractFacade<Usuarios> implements UsuariosFacadeRemote {

    @PersistenceContext(unitName = "socafe-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public UsuariosFacade() {
        super(Usuarios.class);
    }

    @Override
    public boolean crearUsuario(Usuarios usuario) {
        try {
            create(usuario);
            return true;
        } catch (Exception ex) {
            return false;
        }
    }
    
    @Override
    public boolean editarUsuario(Usuarios usuario)
    {
        try
        {
            edit(usuario);
            return true;                    
        }
        catch(  Exception ex)
        {
            return false;
        }
    }

    @Override
    public boolean loguearUsuario(String idUsuario, String password) {
        Usuarios usuario = find(idUsuario);

        return (usuario != null) ? usuario.getPassword().equals(password) : false;
    }

    @Override
    public String dameNombre(String idUsuario) {
        Usuarios usuario = find(idUsuario);
        return usuario.getNombre();
    }

    @Override
    public int dameIdUsuarioPorNombre(String nombre) {
        int id;
        
        id = (Integer) em.createNativeQuery("SELECT idusuario from socafedb.usuarios where nombre like '" + nombre + "'").getSingleResult();
        
        return id;
    }

    @Override
    public Usuarios findUsuarioByName(String nombre) {
        
        return (Usuarios) getEntityManager().createNamedQuery("Usuarios.findByNombre").setParameter("nombre", nombre).getSingleResult();
    }
    
    
}
